package com.demo.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.entity.VtePreventiveDoctorAdvice;
import com.demo.response.Result;
import com.demo.websocket.vo.VteIpcMessageVO;

/**
 * vte预防处置医嘱 服务类
 * @author zm
 * @since 2020-11-27
 */
public interface IVtePreventiveDoctorAdviceService extends IService<VtePreventiveDoctorAdvice> {

    /**
     * 防治医嘱更新
     * @param doctorAdvice      医嘱对象
     * @return
     */
    Result invalidDoctorAdvice(VtePreventiveDoctorAdvice doctorAdvice) throws Exception;

    /**
     * 防治医嘱列表
     * @param pageNumber        页码
     * @param pageSize          每页数量
     * @param adviseType        医嘱类型  1药物 2物理
     * @param patientId         病患序列号【ID】
     * @param status            医嘱状态 0默认全部   1.未停止  2.已停止
     * @param validityLength    医嘱时限 0默认全部   1.长期    2.临时
     * @return
     */
    Result doctorAdviceList(Integer pageNumber,Integer pageSize,Integer patientId,Integer adviseType,Integer status,Integer validityLength);

    /**
     * 防治医嘱列表 --2
     * @param pageNumber
     * @param pageSize
     * @param patientId
     * @return
     */
    Result doctorAdviceListTwo(Integer pageNumber,Integer pageSize,Integer patientId,Integer adviseType,Integer status,Integer validityLength);

    /**
     * 新增医嘱
     * @param doctorAdvice
     * @return
     */
    boolean addDoctorAdvice(VtePreventiveDoctorAdvice doctorAdvice);
   
    /**
     * @Author 李洋
     * @Date 2021-04-17 3:16 PM
     * @Description 功能描述:根据病区ID获取IPC治疗
     * @Param
     * @Return 
     * @Since version-1.0
     */
    Result doctorIpcAdviceByWardId(Integer pageNumber, Integer pageSize, String wardId);

    /**
     * 物理防治医嘱更新
     * @return
     */
    Result doctorIpcAdviceUpdate(Integer vte_preventive_id,Integer physical_prevention);

    void updateVtePreventiveAdviceInfoByKey(Integer paramInteger, String paramString1, String paramString2);

    Result getVtePreventiveAdviceInfoByKey(Integer paramInteger1, Integer paramInteger2, Integer paramInteger3, String paramString);

    Result getMedicinePreventiveInterval(String paramString) throws Exception;

    Result getVteAdviceDeptSnRanking(String orderType, Integer topNumber);

    /**
     * 获取治疗医嘱
     *
     * @param vteIpc
     * @return
     */
    com.demo.websocket.response.Result getIPCDoctorAdvice(VteIpcMessageVO vteIpc);

    /**
     * 更新医嘱 para 参数
     * @param doctorAdviceId
     * @param para
     * @return
     */
    Result updateDoctorAdvicePara(Integer doctorAdviceId, String para);
}
